/*
 * Copyright (C) 2011 Project R'yleh Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.Arkham;


/**
 * Constants used in program
 */

public class Constants {
	//MATH MINI GAME, References to operators
	public static final int  ADD         = 0;
	public static final int  SUBTRACT    = 1;
	public static final int  MULTIPLY    = 2;
	public static final int  DIVIDE      = 3;
	public static final int  OPEN_PARAN  = 4;
	public static final int  CLOSE_PARAN = 5;
	public static final int  EQUALS      = 6;
	public static final int  NUM_OPS     = 6;
	
	//STAT CLASS, references to stat in array
	public static final int  STRENGTH       = 0;  //Affects damage done by physical attacks
	public static final int  AGILITY        = 1;  //Affects speed and Evade
	public static final int  VITALITY       = 2;  //Affects defense of physical attack
	public static final int  MAGIC          = 3;  //Affects magical attack power
	public static final int  ATTACK_POWER   = 4;  //Calculated stat, damage done to enemies
	public static final int  HIT_PERC       = 5;  //Calculated stat, chance to hit enemies
	public static final int  DEFENSE        = 6;  //Calculated stat, physical resistance
	public static final int  EVADE          = 7;  //Calculated Stat, chance to avoid attack
	public static final int  MAGIC_DEFENSE  = 8;  //Calculated stat, magical resistance
	public static final int  MAGIC_EVADE    = 9;  //Calculated stat, chance to avoid magic atk
	public static final int  MAX_HEALTH     = 10;
	public static final int  CURRENT_HEALTH = 11;
	public static final int  MAX_MAGIC      = 12;
	public static final int  CURRENT_MAGIC  = 13;
	public static final int  TOTAL_STATS    = 14;
	/* CALCULATED STATS
	 * ----------------
	 * Attack_POWER:
	 *    Bare Fist:  Strength/2
	 *    One Weapon: Strength/4 + Weapon Power
	 *    Two Weapon: Strength/2 + Average Both Weapon Powers
	 *    
	 * HIT%:
	 *   Agility/4 + Weapon hit % (L+R heands for duel weidling)
	 *   
	 * Defense:
	 *   Vitality/2 + Armor
	 *   
	 * Evade:
	 *    Agility/4
	 *    
	 *  Magical Defense:
	 *    Armor Bonuses Only
	 *    
	 *  Magical Evade
	 *     75% of Magic
	 */

	//ITEM CLASS, reference for equippable Area
	public static final int  HEAD             = 0;
	public static final int  BODY             = 1;
	public static final int  ARMS             = 2;
	public static final int  R_HAND           = 3;
	public static final int  L_HAND           = 4;
	public static final int  FEET             = 5;
	public static final int  ACC              = 6;
	public static final int  EQUIPPABLE_AREAS = 7;
	
	//ITEM CLASS, reference for itemTypes Area
	public static final int  KEY                  = 0;
	public static final int  WEAPON               = 1;
	public static final int  ARMOR                = 2;
	public static final int  ACCESSORY            = 3;
	public static final int  USABLE_CONSUMABLE    = 4;
	public static final int  USABLE_NONCONSUMABLE = 5;
	public static final int  TOTAL_ITEM_TYPES     = 6;
	
	public static final int MAX_CHARACTERS     = 10;
	
	//BATTLE MAP
	public static final int IMPASSABLE           = 0;
	public static final int GOOD_POSITION        = 1;
	public static final int BAD_POSITION         = 2;
	public static final int GOOD_IMPASSABILITY   = 3;
	public static final int BAD_IMPASSABILITY    = 4;
	public static final int OCCUPIED             = 5;
	public static final int MOVABILITY           = 6;
	public static final int ENEMY_TARGET_MOVE    = 7;
	public static final int ENEMY_TARGET_VISITED = 8;
	public static final int ATTACKABILITY        = 9;
	public static final int NUM_ARRAYS           = 10;
}